package hibernate.method.interfaces;

import hibernate.model.Game;
import hibernate.model.GameCategory;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

public interface GameCategoryInterface {
	
	public void addCategoryToGame (SessionFactory sessionFactory, Session session, int game_id, int category_id);
	
	public void deleteCategoryFromGame(SessionFactory sessionFactory, Session session, GameCategory gamecat);
	
	public GameCategory findGameCategory(SessionFactory sessionFactory, Session session, int game_id, int category_id);
	
	public Integer countByCategory(SessionFactory sessionFactory, Session session, int category_id);
	
	public Integer countByGame (SessionFactory sessionFactory, Session session, int game_id);
	
	public List <GameCategory> listByCategory (SessionFactory sessionFactory, Session session, int category_id);
	
	public List <Game> listGamesByCategory (SessionFactory sessionFactory, Session session, List<GameCategory> gamecat);
	
	public List<Game> listGamesWithoutThisCategory (SessionFactory sessionFactory, Session session, int category_id);

	public List<String> listCategoriesByGame (SessionFactory sessionFactory, Session session, int game_id);
	
	public List<String> listUnusedGameByCategory(SessionFactory sessionFactory, Session session, int category_id);
	
	public void deleteGameFromGamesCategories (SessionFactory sessionFactory, Session session, int game_id);
}
